home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 50 / 050.d81 / tempered fun (.txt) < prev    next >
Commodore BASIC  |  2022-08-26  |  10KB  |  325 lines

  1. 5 gosub60100:clr:restore
  2. 6 rem arrays for temperaments
  3. 10 dim eh(46),ph(46),jh(46),mh(46)
  4. 20 dim el(46),pl(46),jl(46),ml(46)
  5. 25 rem array for scales
  6. 30 dim hm(20),lm(20)
  7. 32 rem array for real time
  8. 35 dim as(8)
  9. 36 gosub 6000:restore:rem read ascii values for real time
  10. 40 poke53272,23:poke53280,7
  11. 45 rem menu 1
  12. 50 print"[147]":printtab(6);"[208][204][197][193][211][197] [215][193][201][212] . . . [211][197][212][212][201][206][199] [213][208]"
  13. 60 print"":printtab(12);"([193]bout 14 secs.)
  14. 70 [141]5000:[143] set up arrays
  15. 80 [151]648,4:[151]53281,0:[153]"cont";
  16. 82 [153]"load":[153][163]14);"(NULL)val(NULL)(NULL)val(NULL)valstr$ asc(NULL)(NULL)
  17. 85 printtab(14);"[163][163][163][163][163][163][163][163][163][163][163][163]"
  18. 90 printtab(17);"[205][197][206][213] 1":print
  19. 100 print"[201]. [212]emperaments
  20. 110 [153][163]3);"1.wait valqual"
  21. 120 [153][163]3);"2.wait (NULL)ythagorean"
  22. 130 [153][163]3);"3.wait mid$ust"
  23. 140 [153][163]3);"4.wait (NULL)ean"
  24. 150 [153][163]3);"5.wait (NULL)our own equal temperament"
  25. 155 [153]
  26. 160 [153]"right$right$. (NULL)cales"
  27. 170 [153][163]3);"1.wait (NULL)ajor"
  28. 180 [153][163]3);"2.wait (NULL)inor"
  29. 190 [153][163]3);"3.wait str$orian"
  30. 200 [153][163]3);"4.wait (NULL)hrygian"
  31. 210 [153][163]3);"5.wait (NULL)ydian"
  32. 220 [153][163]3);"6.wait (NULL)ixolydian"
  33. 230 [153][163]3);"7.wait atneolian"
  34. 240 [153][163]3);"8.wait (NULL)ocrian"
  35. 250 [153][163]3);"9.wait lenhromatic (b or #)
  36. 260 print"[150][197]nter number or [209] to quit. [154]";
  37. 270 poke198,0:poke204,0:poke207,0:wait198,1:poke204,1:getk$
  38. 271 ifk$="q"ork$="[209]"then60000
  39. 272 tu=val(k$):iftu=0then260
  40. 273 iftu=1ortu=2ortu=3ortu=4thenprintk$;:de=.5:gosub7000:goto280
  41. 274 iftu=5thenprintk$;:de=.5:gosub7000:goto1300
  42. 275 goto260
  43. 280 print"                                           ";
  44. 281 print"[150][197]nter number of desired scale. [154]";
  45. 282 poke198,0:poke204,0:poke207,0:wait198,1:poke204,1:getk$
  46. 283 mo=val(k$):ifmo=0then281
  47. 284 ifmo=1ormo=2ormo=3ormo=4ormo=5ormo=6ormo=7ormo=8thenprintk$;:de=.5:gosub7000:goto300
  48. 285 ifmo=9thenprintk$;:de=.5:gosub7000:goto287
  49. 286 rem chromatic scale
  50. 287 print"[147][212]his function will allow you to hear a  chromatic octave scale only
  51. 288 [153]"str$o you wish a chromatic scale on sharps or flats? (s/f) ";
  52. 289 [151]198,0:[151]204,0:[151]207,0:[146]198,1:[151]204,1:[161]k$:[139]k$[179][177]"s"[175]k$[179][177]"f"[167]289
  53. 290 [139]k$[178]"s"[167][153]k$:de[178].5:[141]7000:mo[178]9:ap[178]1:[137]400
  54. 291 [139]k$[178]"f"[167][153]k$:de[178].5:[141]7000:mo[178]10:ap[178]1:[137]400
  55. 299 [143] menu 1
  56. 300 [153]"load":[153][163]14);"(NULL)val(NULL)(NULL)val(NULL)valstr$ asc(NULL)(NULL)
  57. 305 printtab(14);"[163][163][163][163][163][163][163][163][163][163][163][163]"
  58. 310 printtab(17);"[205][197][206][213] 2":print
  59. 320 print"[201][201][201]. [193]pplications"
  60. 330 printtab(3);"1.[146] [207]ctave scale"
  61. 340 printtab(3);"2.[146] [210]oot chord"
  62. 350 printtab(3);"3.[146] [210]eal-time melody"
  63. 360 printtab(3);"4.[146] [212]winkle [204]ittle [211]tar (melody)
  64. 370 [153][163]3);"5.wait (NULL)winkle (NULL)ittle (NULL)tar (harmonized)"
  65. 380 [153]"defvalnter number of desired application. cont";
  66. 381 [151]198,0:[151]204,0:[151]207,0:[146]198,1:[151]204,1:[161]k$
  67. 382 ap[178][197](k$):[139]ap[178]0[167]380
  68. 383 [139]ap[178]1[176]ap[178]2[176]ap[178]3[176]ap[178]4[176]ap[178]5[167][153]k$;:de[178].5:[141]7000:[137]400
  69. 384 [137]380
  70. 399 [143] primary pivot point
  71. 400 [145]mo[141]5330,5350,5370,5390,5410,5430,5450,5470,5490,5510
  72. 405 [145]ap[137]500,600,700,900,1100
  73. 499 [143] octave scale
  74. 500 [153]"loadleft$val(NULL)valcloseright$(NULL)close(NULL)(NULL)(NULL)(NULL)close(NULL)len(NULL)atn(NULL)valclose(NULL)lenatn(NULL)val !":[153]"((NULL)ress <(NULL)(NULL)atnlenval peekatn(NULL)> to end early.)"
  75. 501 [141]2000
  76. 502 [143] play octave
  77. 504 [139]no[178]13[167]510
  78. 506 [129]i[178]8[164]15:[137]512
  79. 510 [129]i[178]8[164]20
  80. 512 [151]si,lm(i):[151]si[170]1,hm(i):[143] pitches
  81. 514 [151]si[170]4,17:[143] waveform gate #1 on
  82. 516 de[178]1:[141]7000:[143] duration
  83. 518 [151]si[170]4,16:[143] gate #1 off
  84. 519 [161]k$:[139]k$[178]" "[167]570
  85. 520 [130]
  86. 570 [141]8000:[153]:[153]:[153]"str$o you wish to hear it again? (y/n) ";
  87. 580 [141]3900
  88. 582 [139]k$[178]"n"[167][153]k$:de[178].5:[141]7000:[137]80
  89. 584 [153]k$:de[178].5:[141]7000:[137]500
  90. 599 [143] root chords
  91. 600 [153]"load":[153]"left$val(NULL)valcloseright$(NULL)close(NULL)(NULL)(NULL)(NULL)close(NULL)(NULL)(NULL)(NULL)closelenleft$(NULL)(NULL)str$close!"
  92. 602 [141]2000
  93. 610 [151]si,lm(8):[151]si[170]1,hm(8)
  94. 612 [151]si[170]7,lm(10):[151]si[170]8,hm(10)
  95. 614 [151]si[170]14,lm(12):[151]si[170]15,hm(12)
  96. 616 [151]si[170]4,17:[151]si[170]11,17:[151]si[170]18,17
  97. 620 [153]:[153]"(NULL)ress <(NULL)(NULL)atnlenval peekatn(NULL)> to continue.";
  98. 622 [161]k$:[139]k$[179][177]" "[167]622
  99. 660 [141]8000
  100. 670 [153]:[153]:[153]:[153]"str$o you wish to hear it again? (y/n) ";
  101. 680 [141]3900
  102. 682 [139]k$[178]"n"[167][153]k$:de[178].5:[141]7000:[141]8000:[137]80
  103. 684 [153]k$:de[178].5:[141]7000:[137]600
  104. 699 [143] real time play
  105. 700 [153]"load(NULL)(NULL)atn(NULL) atn (NULL)(NULL)(NULL)val !"
  106. 701 [153]"((NULL)ress the number keys on the keyboard  for the indicated solfege degree.)
  107. 710 forx=0to4:print"";:next
  108. 711 print"[164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164]
  109. 712 [153]"getstr$(NULL)sgn(NULL)valsgn(NULL)right$sgnascatnsgn(NULL)(NULL)sgn(NULL)atnsgn(NULL)right$sgnstr$(NULL)get
  110. 713 print"[161] 1[180] 2[180] 3[180] 4[180] 5[180] 6[180] 7[180] 8[161]
  111. 714 [153]"(NULL)ress <(NULL)(NULL)atnlenval peekatn(NULL)> to end this section."
  112. 760 [141]2000
  113. 770 [161]k$:[139]k$[178]""[167]770
  114. 780 k[178][198](k$)
  115. 790 [139]k[178]32[167][141]8000:[137]80
  116. 800 i[178]0
  117. 805 [139]k[178]as(i)[167][151]si,1:[151]si[170]1,1
  118. 810 [151]si[170]4,16:[139]k[178]as(i)[167][151]si,lm(i[170]8):[151]si[170]1,hm(i[170]8):[151]si[170]4,17:[137]770
  119. 820 i[178]i[170]1
  120. 830 [139]i[179][178]8[167]805
  121. 840 [137]770
  122. 899 [143] twinkle star melody
  123. 900 [153]"load(NULL)left$right$(NULL) right$(NULL) (NULL)(NULL)right$(NULL)(NULL)(NULL)val (NULL)(NULL)atn(NULL) (NULL)val(NULL)(NULL)str$(NULL) !"
  124. 905 [153]"((NULL)ress <(NULL)(NULL)atnlenval peekatn(NULL)> to end early.)"
  125. 910 [141] 2000
  126. 920 rl[178]1000:[141]11000
  127. 924 [129]i[178]1[164]172
  128. 925 [139]d[178][171]1[167]960
  129. 926 [151]si[170]4,16:[141]1200:[141]1220
  130. 927 [161]k$:[139]k$[178]" "[167]960
  131. 928 [130]
  132. 960 [141] 2000
  133. 970 [153]:[153]"str$o you wish to hear it again? (y/n) ";
  134. 980 [141]3900
  135. 982 [139]k$[178]"n"[167][153]k$:de[178].5:[141]7000:d[178]0:[141]8000:[137]80
  136. 984 [153]k$:de[178].5:[141]7000:d[178]0:[137]900
  137. 999 [143] twinkle star data
  138. 1000 [131] 1,8,8,1,1,8,8,1,1,12,8,3,1,12,8,3,1,13,8,4,1,13,8,4,2,12,8,3
  139. 1010 [131] 1,11,8,2,1,11,7,5,1,10,9,6,1,10,8,6,1,9,8,4,1,9,7,5,2,8,3,1
  140. 1020 [131] 1,12,8,3,1,12,8,3,1,11,8,2,1,11,7,2,1,10,8,1,1,10,8,3,2,9,7,5
  141. 1030 [131] 1,12,8,3,1,12,8,3,1,11,8,2,1,11,7,2,1,10,8,1,1,10,8,3,2,9,7,5
  142. 1040 [131] 1,8,8,1,1,8,8,1,1,12,8,3,1,12,8,3,1,13,8,4,1,13,8,4,2,12,8,3
  143. 1050 [131] 1,11,8,2,1,11,7,5,1,10,9,6,1,10,8,6,1,9,8,4,1,9,7,5,2,8,3,1
  144. 1060 [131] -1,0,0,0
  145. 1099 [143] twinkle star harmonized
  146. 1100 [153]"load(NULL)left$right$(NULL) right$(NULL) (NULL)(NULL)right$(NULL)(NULL)(NULL)val (NULL)(NULL)atn(NULL) left$atn(NULL)(NULL)(NULL)(NULL)right$(NULL)valstr$ !"
  147. 1105 [153]"((NULL)ress <(NULL)(NULL)atnlenval peekatn(NULL)> to end early.)"
  148. 1110 [141]2000
  149. 1120 rl[178]1000:[141]11000
  150. 1130 [129]i[178]1[164]172
  151. 1140 [139] d[178][171]1[167]1160
  152. 1150 [151]si[170]4,16:[151]si[170]11,16:[151]si[170]18,16:[141]1200:[141]1260
  153. 1152 [161]k$:[139]k$[178]" "[167]1160
  154. 1155 [130]
  155. 1160 d[178]0:[141]2000:[153]:[153]"str$o you wish to hear it again? (y/n) ";
  156. 1162 [141]3900
  157. 1164 [139]k$[178]"n"[167][153]k$:de[178].5:[141]7000:d[178]0:[141]8000:[137]80
  158. 1166 [153]k$:de[178].5:[141]7000:d[178]0:[137]1100
  159. 1199 [143] read twinkle star data
  160. 1200 [135] d,r1,r2,r3
  161. 1210 [142]
  162. 1219 [143] rem poke twinkle data for melody
  163. 1220 p1[178]lm(r1):p2[178]hm(r1)
  164. 1230 [151]si,p1:[151]si[170]1,p2
  165. 1235 [151]si[170]4,17
  166. 1240 de